package br.com.DAO;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import br.com.entidade.Maquina;

public class ProdutoDAO {
	
	
	private EntityManager em;
	

	public ProdutoDAO(EntityManager em) {
		this.em = em;
	}
	
	

	public void create(Maquina produto) {
		this.em.getTransaction().begin();
		this.em.persist(produto);
		this.em.getTransaction().commit();
	}

	public void delete(Maquina produto) {
		this.em.getTransaction().begin();
		this.em.remove(produto);
		this.em.getTransaction().commit();
	}

	public List<Maquina> findAll() {
		String hql = "SELECT a FROM Produto a";

		return this.em.createQuery(hql).getResultList();
	}
	public List<Maquina> findAlugado() {
		String hql = "SELECT a FROM Produto a where Status=Alugado";

		return this.em.createQuery(hql).getResultList();
	}
	public List<Maquina> findEmEstoque() {
		String hql = "SELECT a FROM Produto a where Status=EmEstoque";

		return this.em.createQuery(hql).getResultList();
	}

	public Maquina findById(Long id) {
		String hql = "SELECT a FROM Produto a where a.id = :id";
		Query q = this.em.createQuery(hql);
		q.setParameter("id", id);

		return (Maquina) q.getResultList().get(0);
	}
}
